package cn.cttic.base.api.domain.vo;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;

import cn.cttic.common.translation.annotation.Translation;
import cn.cttic.common.translation.annotation.TranslationType;
import cn.cttic.common.translation.constant.TransConstant;
import cn.cttic.base.api.domain.BaseCompany;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serial;
import java.io.Serializable;


/**
 * 单位信息视图对象 base_company
 *
 * @author Times.Studio
 * @date 2024-09-17
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BaseCompany.class)
public class BaseCompanyVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     *
     */
    @ExcelProperty(value = "")
    private String id;

    /**
     * 上级单位标识
     */
    private String parentId;

    /**
     * 渠道类型
     */
    @ExcelProperty(value = "渠道类型")
    private String channelType;

    @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "channelType", other = "dict_channel_type")
    private String channelTypeName;

    /**
     * 单位名称
     */
    @ExcelProperty(value = "单位名称")
    private String companyName;

    /**
     * 单位简称
     */
    @ExcelProperty(value = "单位简称")
    private String shortName;

    /**
     * 单位类型
     */
    @ExcelProperty(value = "单位类型")
    private String companyType;

    @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "companyType", other = "dict_company_type")
    private String companyTypeName;

    /**
     * 行业类型
     */
    @ExcelProperty(value = "行业类型")
    private String industryType;

    @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "industryType", other = "dict_industry_type")
    private String industryTypeName;

    /**
     * 社会信用代码
     */
    @ExcelProperty(value = "社会信用代码")
    private String creditCode;

    /**
     * 证照编号
     */
    @ExcelProperty(value = "证照编号")
    private String licenseNumber;

    /**
     * 地区
     */
    @ExcelProperty(value = "地区")
    private String district;

    /**
     * 地区
     */
    private String districtName;

    /**
     * 法定代表人
     */
    private String legalPerson;

    /**
     * 注册资本
     */
    @ExcelProperty(value = "注册资本")
    private Integer registerCapital;

    /**
     * 注册时间
     */
    @ExcelProperty(value = "注册时间")
    private LocalDate establishDate;

    /**
     * 签发日期
     */
    private LocalDate signedDate;

    /**
     * 开始日期
     */
    @ExcelProperty(value = "开始日期")
    private LocalDate startTerm;

    /**
     * 结束日期
     */
    @ExcelProperty(value = "结束日期")
    private LocalDate endTerm;


    private Integer isLicenseIndefinite;

    /**
     * 登记机关
     */
    @ExcelProperty(value = "登记机关")
    private String registrationAuthority;

    /**
     * 注册地址
     */
    @ExcelProperty(value = "注册地址")
    private String address;

    /**
     * 经营范围
     */
    @ExcelProperty(value = "经营范围")
    private String businessScope;

    /**
     * 主营业务
     */
    @ExcelProperty(value = "主营业务")
    private String businessExpertise;

    /**
     * 单位介绍
     */
    @ExcelProperty(value = "单位介绍")
    private String introduction;

    /**
     * 营业执照
     */
    @ExcelProperty(value = "营业执照")
    private String businessLicense;

    /**
     * 营业执照Url
     */
    @Translation(type = TransConstant.OSS_ID_TO_URL, mapper = "businessLicense")
    private String businessLicenseUrl;

    /**
     * 单位logo
     */
    @ExcelProperty(value = "单位logo")
    private String logo;

    /**
     * 单位logoUrl
     */
    @Translation(type = TransConstant.OSS_ID_TO_URL, mapper = "logo")
    private String logoUrl;
    /**
     * 认证状态
     */
    @ExcelProperty(value = "认证状态")
    private Integer status;
    /**
     * 认证状态
     */
    @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "status", other = "dict_company_verify_status")
    private String statusName;

    /**
     * 负责人姓名
     */
    private String chargerName;

    /**
     * 负责人联系方式
     */
    private String chargerMobile;

    /**
     * 开户行
     */
    private String bankName;

    /**
     * 开户名
     */
    private String bankAccountName;

    /**
     * 开户账号
     */
    private String bankAccount;

    /**
     * 企业电话
     */
    private String companyTelephone;

    /**
     * 系统用户
     */
    @ExcelProperty(value = "系统用户")
    private String sysUserId;

    /**
     * 移动用户
     */
    @ExcelProperty(value = "移动用户")
    private String appUserId;

    /**
     * 移动用户
     */
    @ExcelProperty(value = "创建时间")
    private LocalDateTime createTime;


}
